package org.jeecg.modules.exPingbiao.service;

import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.exPingbiao.domain.form.ExPingbiaoExpertRejectForm;
import org.jeecg.modules.exPingbiao.entity.ExPingbiaoExpertDetail;
import org.jeecg.modules.exPingbiao.entity.ExPingbiaoExpert;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.exPingbiao.vo.*;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

/**
 * @Description: 评标
 * @Author: jeecg-boot
 * @Date: 2024-11-09
 * @Version: V1.0
 */
public interface IExPingbiaoExpertService extends IService<ExPingbiaoExpert> {

    /**
     * 添加一对多
     *
     * @param exPingbiaoExpert
     * @param exPingbiaoExpertDetailList
     */
    public void saveMain(ExPingbiaoExpert exPingbiaoExpert, List<ExPingbiaoExpertDetail> exPingbiaoExpertDetailList);

    /**
     * 修改一对多
     *
     * @param exPingbiaoExpert
     * @param exPingbiaoExpertDetailList
     */
    public void updateMain(ExPingbiaoExpert exPingbiaoExpert, List<ExPingbiaoExpertDetail> exPingbiaoExpertDetailList);

    /**
     * 删除一对多
     *
     * @param id
     */
    public void delMain(String id);

    /**
     * 批量删除一对多
     *
     * @param idList
     */
    public void delBatchMain(Collection<? extends Serializable> idList);

    void save(ExPingbiaoExpertParam exPingbiaoExpertParam);

    ExPingbiaoExpertPage getInfo(String tenderListId, String businessType, String businessId,String expertId);

    ExPingbiaoExpertItemDetailVO getItemList(String tenderListId, String businessType, String businessId);

    /**
     * @param tenderListId
     * @param businessIdList
     * @return
     */
    List<ExPingbiaoExpert> selectByExpertIdAndBusinessIdList(String tenderListId, List<String> businessIdList);


    /**
     * @param bidSectionId
     * @return
     */
    Result<String> nextBusiness(String bidSectionId);

    /**
     * 状态回退
     *
     * @param form
     * @return
     */
    Result<String> backEdit(ExPingbiaoExpertRejectForm form);


    /**
     * 状态回退
     *
     * @param projectId
     * @param sectionId
     * @return
     */
    Result<ExPingbiaoExpertConfigVO> config(String projectId, String sectionId, String expertId);

    Result<List<ExPingbiaoExpertRecordVO>> queryRecord(String sectionId,String tenderListId);

    Result<List<ExPingbiaoExpertDetail>> queyrPfbzRecordList(String sectionId, String expertId,String scoreStandardId, String standardType);

    Result<Boolean> complete(String bidSectionId, String userId);

    boolean getAllCmpleted(String bidSectionId, String id);
}
